Skip to main content

97 Things Every Programmer Should Know

🚀 The Book in 3 Sentences

This book is a collection of 97 software engineering tips and advice from experts in the field. It contains non-technical advice, technical advice and thoughts from a pretty large corpus of experience.

🎨 Impressions

Very easy and quick to read. Would be nice for me to read through the notes at a later time and then recap the wisdom.

Review

I thought a little bit about the compromise quote, writing it down in the task management system or other. To me I reflect on the sad fact that tasks that are in the backlog for more than 4 weeks will remain in the backlog for the remainer of that projects lifetime or deletion.

Lots of tidbits there that was quite intersting. Think I should read the 97 things that a data engineer should know

✍️ My Top Quotes

  • Technical debt is like a loan: you benefit from it in the short term, but you have to pay interest on it until it is fully paid off.

  • As soon as you make the decision to compromise, write a task card or log it in your issue-tracking system to ensure that it does not get forgotten.

  • WE ALL TEND TO ASSUME THAT OTHER PEOPLE THINK LIKE US. But they don't. Psychologists call this the false consensus bias.

  • Beauty of style and harmony and grace and good rhythm depends on simplicity.

  • THERE ARE BASICALLY TWO REASONS that things go wrong at runtime: technical problems that prevent us from using the application and business logic that prevents us from misusing the application.

  • Deliberate practice does not mean doing what you are good at; it means challenging yourself, doing what you are not good at. So it's not necessarily fun.

  • There have been many attempts to remove the need for this skilled thinking over the decades. One of the earliest and most memorable is the effort by Grace Hopper to make programming languages less cryptic—which some accounts predicted would remove the need for specialist programmers. The result (COBOL) has contributed to the income of many specialist programmers over subsequent decades.

  • Since floating-point numbers are approximations of real numbers, there is inevitably a little error present. This error, called roundoff, can lead to surprising results.

  • LESS IS MORE. It's a quite trite little maxim, but sometimes it really is true.

  • Cues are different from instructions: cues tend to be hints; instructions are verbose. Cues occur at the point of interaction; instructions appear before the point of interaction. Cues provide context; instructions dictate use.

  • Sure, test automation is great, but why stop there? Repetitive tasks abound in any project: version control, compiling, building JAR files, documentation generation, deployment, and reporting.

  • In Zulu, the philosophy of Ubuntu is summed up as "Umuntu ngumuntu ngabantu," which roughly translates to "A person is a person through (other) persons."

  • WHEN I ENCOUNTER A SYSTEM that has already been in development or production for a while, the first sign of real trouble is always a dirty log.

  • Think there is a simple way to adjust your attitude and always be driven to deliver the best quality products: Write code as if you had to support it for the rest of your life.